﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LeitorNFe
{
    public class FornecedorRepository
    {
        AtualizaCadastroNFeEntities entity;
        public FornecedorRepository()
        {
            entity = AtualizaCadastroContext.getInstance();
        }

        public IQueryable<FORNECEDOR> GetFORNECEDORs()
        {
            return AtualizaCadastroContext.getInstance().FORNECEDOR;
        }

        public IList<FORNECEDOR> GetAll()
        {
            return AtualizaCadastroContext.getInstance().FORNECEDOR.ToList();
        }

        public FORNECEDOR getFORNECEDOR(string pCNPJ)
        {
            return entity.FORNECEDOR.SingleOrDefault(a => a.CNPJ == pCNPJ);
        }

        public void Update()
        {
            try
            {
                entity.SaveChanges();
            }
            catch (Exception ex)
            {
                AtualizaCadastroContext.removeInstance();
                throw ex;
            }
        }

        public void Add(FORNECEDOR pFORNECEDOR)
        {
            try
            {
                entity.AddToFORNECEDOR(pFORNECEDOR);
                entity.SaveChanges();
            }
            catch (Exception ex)
            {
                AtualizaCadastroContext.removeInstance();
                throw ex;
            }
        }

        public void Delete(FORNECEDOR pFORNECEDOR)
        {
            entity.FORNECEDOR.DeleteObject(pFORNECEDOR);
            entity.SaveChanges();
        }
    }
}
